import sys
import counter  # 导入统计功能模块

def main():
    # 检查命令行参数是否正确（需要 2 个参数：参数 + 文件名）
    if len(sys.argv) != 3:
        print("用法错误！正确格式：python wc.py [参数] [文件名]")
        print("支持的参数：")
        print("  -c   统计字符数")
        print("  -w   统计单词数")
        print("  -s   统计句子数")
        print("  -l   统计总行数")
        print("  -bl  统计空行数")
        print("  -com 统计注释行（#开头的行）")
        print("  -cl  统计代码行（非空行且非注释行）")
        return

    # 解析参数和文件名
    arg = sys.argv[1]
    file_path = sys.argv[2]  # 文件名/路径

    # 读取文件内容（关键：直接在这里读取，不依赖 counter.read_file）
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()  # 读取文件内容到 content 变量
    except FileNotFoundError:
        print(f"错误：找不到文件 '{file_path}'")
        return
    except Exception as e:
        print(f"读取文件失败：{str(e)}")
        return

    # 根据参数调用对应的统计函数
    if arg == '-c':
        result = counter.count_chars(content)
        print(f"字符数：{result}")
    elif arg == '-w':
        result = counter.count_words(content)
        print(f"单词数：{result}")
    elif arg == '-s':
        result = counter.count_sentences(content)
        print(f"句子数：{result}")
    elif arg == '-l':
        result = counter.count_lines(content)
        print(f"总行数：{result}")
    elif arg == '-bl':
        result = counter.count_blank_lines(content)
        print(f"空行数：{result}")
    elif arg == '-com':
        result = counter.count_comment_lines(content)
        print(f"注释行数：{result}")
    elif arg == '-cl':
        result = counter.count_code_lines(content)
        print(f"代码行数：{result}")
    else:
        print(f"无效参数：'{arg}'")
        print("支持的参数：-c, -w, -s, -l, -bl, -com, -cl")

if __name__ == "__main__":
    main()